<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>MiXiM: Argument Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>


</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">MiXiM
   &#160;<span id="projectnumber">2.3</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('a00013.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-types">Protected Types</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#friends">Friends</a>  </div>
  <div class="headertitle">
<div class="title">Argument Class Reference<div class="ingroups"><a class="el" href="a00519.html">mapping - classes representing mathematical mappings</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="Argument" -->
<p>Defines an argument for a mapping.  
 <a href="a00013.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="a00298_source.html">MappingBase.h</a>&gt;</code></p>

<p><a href="a00553.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html">key_iterator</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac1eb4e3eff9e8f84ef4dc0c91127eba1"></a><!-- doxytag: member="Argument::key_type" ref="ac1eb4e3eff9e8f84ef4dc0c91127eba1" args="" -->
typedef DimensionSet::value_type&#160;</td><td class="memItemRight" valign="bottom"><b>key_type</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3dd501f2b9169432270402847347950a"></a><!-- doxytag: member="Argument::mapped_type" ref="a3dd501f2b9169432270402847347950a" args="" -->
typedef double&#160;</td><td class="memItemRight" valign="bottom"><b>mapped_type</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a92bb9c0642c2a4bb6bebde5c280065a8"></a><!-- doxytag: member="Argument::mapped_type_cref" ref="a92bb9c0642c2a4bb6bebde5c280065a8" args="" -->
typedef mapped_type&#160;</td><td class="memItemRight" valign="bottom"><b>mapped_type_cref</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a62ef6fa40b8600df45f05d0e36e6d296"></a><!-- doxytag: member="Argument::iterator" ref="a62ef6fa40b8600df45f05d0e36e6d296" args="" -->
typedef container_type::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a62ef6fa40b8600df45f05d0e36e6d296">iterator</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator type for this set. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a521abc97d737e8c77742dcc9f4b21022"></a><!-- doxytag: member="Argument::const_iterator" ref="a521abc97d737e8c77742dcc9f4b21022" args="" -->
typedef <br class="typebreak"/>
container_type::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a521abc97d737e8c77742dcc9f4b21022">const_iterator</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Const-iterator type for this set. <br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa0332822be81f516faa499d00474c834"></a><!-- doxytag: member="Argument::Argument" ref="aa0332822be81f516faa499d00474c834" args="(simtime_t_cref timeVal=SIMTIME_ZERO)" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#aa0332822be81f516faa499d00474c834">Argument</a> (simtime_t_cref timeVal=SIMTIME_ZERO)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize this argument with the passed value for the time dimension. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4de14fe94af77f9d568cf74313dfbcd1"></a><!-- doxytag: member="Argument::Argument" ref="a4de14fe94af77f9d568cf74313dfbcd1" args="(const DimensionSet &amp;dims, simtime_t_cref timeVal=SIMTIME_ZERO)" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a4de14fe94af77f9d568cf74313dfbcd1">Argument</a> (const <a class="el" href="a00086.html">DimensionSet</a> &amp;dims, simtime_t_cref timeVal=SIMTIME_ZERO)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> with the dimensions of the passed <a class="el" href="a00086.html" title="Represents a set of dimensions which is used to define over which dimensions a mapping is defined (th...">DimensionSet</a> set to zero, and the passed value for the time (or zero, if omitted). <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2ecb3b041b5b8721d6767531e4ac792a"></a><!-- doxytag: member="Argument::getTime" ref="a2ecb3b041b5b8721d6767531e4ac792a" args="() const " -->
simtime_t_cref&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a2ecb3b041b5b8721d6767531e4ac792a">getTime</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the time value of this argument. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8087982f050bdc61d787b128ca9ac8f9"></a><!-- doxytag: member="Argument::setTime" ref="a8087982f050bdc61d787b128ca9ac8f9" args="(simtime_t_cref time)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a8087982f050bdc61d787b128ca9ac8f9">setTime</a> (simtime_t_cref <a class="el" href="a00013.html#a69cba55a3a7e1414ba8edde37796d84e">time</a>)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the time value of this argument. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e9998020362333915af80cde79df9e6"></a><!-- doxytag: member="Argument::hasArgVal" ref="a0e9998020362333915af80cde79df9e6" args="(const Argument::key_type &amp;dim) const " -->
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a0e9998020362333915af80cde79df9e6">hasArgVal</a> (const Argument::key_type &amp;dim) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if this <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> has a value for the passed <a class="el" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a>. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">mapped_type_cref&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a137a911de0281cbb519fe13727aa0813">getArgValue</a> (const Argument::key_type &amp;dim) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value for the specified dimension.  <a href="#a137a911de0281cbb519fe13727aa0813"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a27bd7000e865670a673039233424d2ab">setArgValue</a> (const Argument::key_type &amp;dim, Argument::mapped_type_cref value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the value for the specified dimension.  <a href="#a27bd7000e865670a673039233424d2ab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a72ac36c91caaeb8f34eb091abff19c51">setArgValues</a> (const <a class="el" href="a00013.html">Argument</a> &amp;o, bool ignoreUnknown=false)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the values of this <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> with the values of the passed <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>.  <a href="#a72ac36c91caaeb8f34eb091abff19c51"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#ac69b6722244626cdf4e0a006c9822cec">isSamePosition</a> (const <a class="el" href="a00013.html">Argument</a> &amp;other) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the passed <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> points to the same position.  <a href="#ac69b6722244626cdf4e0a006c9822cec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afedad9de51d93e634baa82f1152d7155"></a><!-- doxytag: member="Argument::operator==" ref="afedad9de51d93e634baa82f1152d7155" args="(const Argument &amp;o) const " -->
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#afedad9de51d93e634baa82f1152d7155">operator==</a> (const <a class="el" href="a00013.html">Argument</a> &amp;o) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Two Arguments are compared equal if they have the same dimensions and the same values. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a306689df8719cb4334335d93cd657f74"></a><!-- doxytag: member="Argument::isClose" ref="a306689df8719cb4334335d93cd657f74" args="(const Argument &amp;o, Argument::mapped_type_cref epsilon=Argument::mapped_type(0.000001)) const " -->
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a306689df8719cb4334335d93cd657f74">isClose</a> (const <a class="el" href="a00013.html">Argument</a> &amp;o, Argument::mapped_type_cref epsilon=Argument::mapped_type(0.000001)) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Two Arguments are compared close if they have the same dimensions and their values don't differ more then a specific epsilon. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a20805e35e4f766088dccfa2bbd8faf03">operator&lt;</a> (const <a class="el" href="a00013.html">Argument</a> &amp;o) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if this <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> is smaller then the passed <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>. The dimensions of the Arguments have to be the same.  <a href="#a20805e35e4f766088dccfa2bbd8faf03"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#ac983761168238481be2bc9d9d180abe5">compare</a> (const <a class="el" href="a00013.html">Argument</a> &amp;o, const <a class="el" href="a00086.html">DimensionSet</a> *const dims=NULL) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares this <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> with the passed <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> in the dimensions of the passed DimensionsSet. (Every other <a class="el" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a> is asserted equal).  <a href="#ac983761168238481be2bc9d9d180abe5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00086.html">DimensionSet</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a8b3fcda23d2eec4e931126d261e4b194">getDimensions</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the dimensions this argument is defined over.  <a href="#a8b3fcda23d2eec4e931126d261e4b194"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada2c927eb0577a2ab63f314d369751aa"></a><!-- doxytag: member="Argument::operator=" ref="ada2c927eb0577a2ab63f314d369751aa" args="(const Argument &amp;o)" -->
<a class="el" href="a00013.html">Argument</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#ada2c927eb0577a2ab63f314d369751aa">operator=</a> (const <a class="el" href="a00013.html">Argument</a> &amp;o)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast implementation of the copy-operator then the default implementation. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af0e836fd4aaecc1461b994e21f66ddc3"></a><!-- doxytag: member="Argument::begin" ref="af0e836fd4aaecc1461b994e21f66ddc3" args="()" -->
<a class="el" href="a00013.html#a62ef6fa40b8600df45f05d0e36e6d296">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#af0e836fd4aaecc1461b994e21f66ddc3">begin</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the first argument value in this <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a493bcd3b014d9bc09f5b0a5093797136"></a><!-- doxytag: member="Argument::begin" ref="a493bcd3b014d9bc09f5b0a5093797136" args="() const " -->
<a class="el" href="a00013.html#a521abc97d737e8c77742dcc9f4b21022">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a493bcd3b014d9bc09f5b0a5093797136">begin</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the first argument value in this <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeeb6730c20ae8a8d6c9606f2e03cc1da"></a><!-- doxytag: member="Argument::end" ref="aeeb6730c20ae8a8d6c9606f2e03cc1da" args="()" -->
<a class="el" href="a00013.html#a62ef6fa40b8600df45f05d0e36e6d296">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#aeeb6730c20ae8a8d6c9606f2e03cc1da">end</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the value behind the last argument value. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a839f872b871bcce52fa4179b0e8ee0a7"></a><!-- doxytag: member="Argument::end" ref="a839f872b871bcce52fa4179b0e8ee0a7" args="() const " -->
<a class="el" href="a00013.html#a521abc97d737e8c77742dcc9f4b21022">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a839f872b871bcce52fa4179b0e8ee0a7">end</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the value behind the last argument value. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00013.html#a62ef6fa40b8600df45f05d0e36e6d296">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#ae4b61830a991f8911978c30a67dd2da6">find</a> (const Argument::key_type &amp;dim)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> value for the passed <a class="el" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a>.  <a href="#ae4b61830a991f8911978c30a67dd2da6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00013.html#a521abc97d737e8c77742dcc9f4b21022">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a3289dcd0413f1df96a51df6cef134ad4">find</a> (const Argument::key_type &amp;dim) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> value for the passed <a class="el" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a>.  <a href="#a3289dcd0413f1df96a51df6cef134ad4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac22d11d6f986ecc564b98c1dbd0acb53"></a><!-- doxytag: member="Argument::lower_bound" ref="ac22d11d6f986ecc564b98c1dbd0acb53" args="(const Argument::key_type &amp;dim)" -->
<a class="el" href="a00013.html#a62ef6fa40b8600df45f05d0e36e6d296">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#ac22d11d6f986ecc564b98c1dbd0acb53">lower_bound</a> (const Argument::key_type &amp;dim)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the first <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> value which dimension compares greater or equal to the passed <a class="el" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a>. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afd7c54a936671eb153f524443e36de52"></a><!-- doxytag: member="Argument::lower_bound" ref="afd7c54a936671eb153f524443e36de52" args="(const Argument::key_type &amp;dim) const " -->
<a class="el" href="a00013.html#a521abc97d737e8c77742dcc9f4b21022">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#afd7c54a936671eb153f524443e36de52">lower_bound</a> (const Argument::key_type &amp;dim) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the first <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> value which dimension compares greater or equal to the passed <a class="el" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a>. <br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8523627cdc70492e5e0935b9a3a78cc4"></a><!-- doxytag: member="Argument::MappedZero" ref="a8523627cdc70492e5e0935b9a3a78cc4" args="" -->
static const mapped_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a8523627cdc70492e5e0935b9a3a78cc4">MappedZero</a> = Argument::mapped_type(0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Zero value of a <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> value. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a657d962a1b965814e6b2eecb07f03e80"></a><!-- doxytag: member="Argument::MappedOne" ref="a657d962a1b965814e6b2eecb07f03e80" args="" -->
static const mapped_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a657d962a1b965814e6b2eecb07f03e80">MappedOne</a> = Argument::mapped_type(1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">One value of a <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> value. <br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-types"></a>
Protected Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b90c0766620d819b1bf1221603cc4c0"></a><!-- doxytag: member="Argument::container_type" ref="a5b90c0766620d819b1bf1221603cc4c0" args="" -->
typedef std::map&lt; key_type, <br class="typebreak"/>
mapped_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>container_type</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a296f0e0c35afc921b9b39b312e97e425"></a><!-- doxytag: member="Argument::value_type" ref="a296f0e0c35afc921b9b39b312e97e425" args="" -->
typedef container_type::value_type&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00013.html#a62ef6fa40b8600df45f05d0e36e6d296">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a9f8683a4ac0a277d92f4ee4c553b75f9">insertValue</a> (<a class="el" href="a00013.html#a62ef6fa40b8600df45f05d0e36e6d296">iterator</a> pos, const Argument::value_type &amp;valPair, <a class="el" href="a00013.html#a62ef6fa40b8600df45f05d0e36e6d296">iterator</a> &amp;itEnd, bool ignoreUnknown=false)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts the passed value for the passed <a class="el" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a> into this <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>.  <a href="#a9f8683a4ac0a277d92f4ee4c553b75f9"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a69cba55a3a7e1414ba8edde37796d84e"></a><!-- doxytag: member="Argument::time" ref="a69cba55a3a7e1414ba8edde37796d84e" args="" -->
simtime_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a69cba55a3a7e1414ba8edde37796d84e">time</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the time dimension in Omnet's time type. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7e41277b3b57f03fbb47336c2b7439f8"></a><!-- doxytag: member="Argument::values" ref="a7e41277b3b57f03fbb47336c2b7439f8" args="" -->
container_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8">values</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Maps the dimensions of this <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> to their values. <br/></td></tr>
<tr><td colspan="2"><h2><a name="friends"></a>
Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a7eb8c897281544d904f4a45de93a5cf9">operator&lt;&lt;</a> (std::ostream &amp;out, const <a class="el" href="a00013.html">Argument</a> &amp;d)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Output operator for Arguments.  <a href="#a7eb8c897281544d904f4a45de93a5cf9"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Defines an argument for a mapping. </p>
<p>Defines values for a specified set of dimensions, but at least for the time dimension.</p>
<p>Note: Currently an <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> can be maximal defined over ten Dimensions plus the time dimension!</p>
<dl class="author"><dt><b>Author:</b></dt><dd>Karl Wessel </dd></dl>
</div><hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ac983761168238481be2bc9d9d180abe5"></a><!-- doxytag: member="Argument::compare" ref="ac983761168238481be2bc9d9d180abe5" args="(const Argument &amp;o, const DimensionSet *const dims=NULL) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Argument::compare </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00013.html">Argument</a> &amp;&#160;</td>
          <td class="paramname"><em>o</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00086.html">DimensionSet</a> *const&#160;</td>
          <td class="paramname"><em>dims</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compares this <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> with the passed <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> in the dimensions of the passed DimensionsSet. (Every other <a class="el" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a> is asserted equal). </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>&lt; 0 - passed <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> is bigger = 0 - Arguments are equal &gt; 0 - passed <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> is smaller</dd></dl>
<p>See "operator&lt;" for definition of smaller, equal and bigger. </p>

<p>References <a class="el" href="a00086.html#a41c765e5e5c1ff02d36855bdd0d3601c">DimensionSet::empty()</a>, <a class="el" href="a00013.html#a69cba55a3a7e1414ba8edde37796d84e">time</a>, and <a class="el" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8">values</a>.</p>

<p>Referenced by <a class="el" href="a00138.html#adb9e9ced268b9a5d1d4f6d34738654aa">MappingUtils::findMin()</a>, <a class="el" href="a00013.html#a20805e35e4f766088dccfa2bbd8faf03">operator&lt;()</a>, and <a class="el" href="a00013.html#afedad9de51d93e634baa82f1152d7155">operator==()</a>.</p>
<div class="fragment"><pre class="fragment">{
  DimensionSet::const_iterator                 DimItLast; <span class="keywordflow">if</span> (dims != NULL) DimItLast = dims-&gt;end();
  <span class="keyword">const</span> DimensionSet::const_iterator           DimItEnd  = DimItLast;

  <span class="keyword">const</span> container_type::const_reverse_iterator rItEnd = <a class="code" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8" title="Maps the dimensions of this Argument to their values.">values</a>.rend();
  <span class="keyword">const</span> container_type::const_iterator         itEndO = o.<a class="code" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8" title="Maps the dimensions of this Argument to their values.">values</a>.end();
  container_type::const_reverse_iterator       rIt;
  container_type::const_iterator               itO;
  <span class="keywordtype">bool</span>                                         bDidCompare = <span class="keyword">false</span>;

  <span class="comment">//iterate through passed dimensions and compare arguments in these dimensions</span>
  <span class="keywordflow">for</span> (container_type::const_reverse_iterator rIt = <a class="code" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8" title="Maps the dimensions of this Argument to their values.">values</a>.rbegin(); rIt != rItEnd; ++rIt) {
    <span class="keywordtype">bool</span> bMissedDimsEntry = <span class="keyword">false</span>;

    <span class="keywordflow">if</span> (dims != NULL) {
      DimensionSet::const_iterator DimItCurr = dims-&gt;find(rIt-&gt;first);
      <span class="keywordflow">if</span> (DimItCurr == DimItEnd) {
        <span class="keywordflow">continue</span>;
      }
      <span class="keywordflow">if</span> (DimItLast != DimItEnd &amp;&amp; (--DimItLast) != DimItEnd) {
        bMissedDimsEntry = (DimItLast != DimItCurr); <span class="comment">// missed something</span>
      }
      DimItLast = DimItCurr;
    }
    bDidCompare = <span class="keyword">true</span>;
    <span class="comment">//catch special cases time, missing dimension values (after which we can abort)</span>
    <span class="keywordflow">if</span>( bMissedDimsEntry || (itO = o.<a class="code" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8" title="Maps the dimensions of this Argument to their values.">values</a>.find(rIt-&gt;first)) == itEndO ) {
      <span class="keywordflow">if</span> (<a class="code" href="a00013.html#a69cba55a3a7e1414ba8edde37796d84e" title="Stores the time dimension in Omnet&#39;s time type.">time</a> == o.<a class="code" href="a00013.html#a69cba55a3a7e1414ba8edde37796d84e" title="Stores the time dimension in Omnet&#39;s time type.">time</a>)
        <span class="keywordflow">return</span> 0;
      <span class="keywordflow">return</span> (<a class="code" href="a00013.html#a69cba55a3a7e1414ba8edde37796d84e" title="Stores the time dimension in Omnet&#39;s time type.">time</a> &lt; o.<a class="code" href="a00013.html#a69cba55a3a7e1414ba8edde37796d84e" title="Stores the time dimension in Omnet&#39;s time type.">time</a>) ? -1 : 1;
    }

    <span class="comment">//if both Arguments are defined in the current dimensions</span>
    <span class="comment">//compare them (otherwise we assume them equal and continue)</span>
    <span class="keywordflow">if</span> (rIt-&gt;second != itO-&gt;second)
      <span class="keywordflow">return</span> (rIt-&gt;second &lt; itO-&gt;second) ? -1 : 1;
  }
  <span class="keywordflow">if</span> (dims == NULL || (dims-&gt;find(<a class="code" href="a00085.html#a16cb1f186dd3f48d33a4aebe948001d7" title="Shortcut to the time Dimension, same as &#39;Dimension(&quot;time&quot;)&#39;, but spares the parsing of a string...">Dimension::time</a>) != DimItEnd || (!bDidCompare &amp;&amp; !dims-&gt;<a class="code" href="a00086.html#a41c765e5e5c1ff02d36855bdd0d3601c" title="Returns true if the DimensionSet is empty.">empty</a>()))) {
    <span class="keywordflow">if</span> (<a class="code" href="a00013.html#a69cba55a3a7e1414ba8edde37796d84e" title="Stores the time dimension in Omnet&#39;s time type.">time</a> == o.<a class="code" href="a00013.html#a69cba55a3a7e1414ba8edde37796d84e" title="Stores the time dimension in Omnet&#39;s time type.">time</a>)
      <span class="keywordflow">return</span> 0;
    <span class="keywordflow">return</span> (<a class="code" href="a00013.html#a69cba55a3a7e1414ba8edde37796d84e" title="Stores the time dimension in Omnet&#39;s time type.">time</a> &lt; o.<a class="code" href="a00013.html#a69cba55a3a7e1414ba8edde37796d84e" title="Stores the time dimension in Omnet&#39;s time type.">time</a>) ? -1 : 1;
  }
  <span class="keywordflow">return</span> 0;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ae4b61830a991f8911978c30a67dd2da6"></a><!-- doxytag: member="Argument::find" ref="ae4b61830a991f8911978c30a67dd2da6" args="(const Argument::key_type &amp;dim)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00013.html#a62ef6fa40b8600df45f05d0e36e6d296">Argument::iterator</a> Argument::find </td>
          <td>(</td>
          <td class="paramtype">const Argument::key_type &amp;&#160;</td>
          <td class="paramname"><em>dim</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns an iterator to the <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> value for the passed <a class="el" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a>. </p>
<p>Returns <a class="el" href="a00013.html#aeeb6730c20ae8a8d6c9606f2e03cc1da" title="Returns an iterator to the value behind the last argument value.">end()</a> if there is no <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> for that dimension. </p>

<p>References <a class="el" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8">values</a>.</p>

<p>Referenced by <a class="el" href="a00013.html#a137a911de0281cbb519fe13727aa0813">getArgValue()</a>, and <a class="el" href="a00058.html#a526e8d5b948e9b2ce9d729e66b162e13">ConstMapping::print()</a>.</p>
<div class="fragment"><pre class="fragment">                                                          {
  assert(!(dim == <a class="code" href="a00085.html#a16cb1f186dd3f48d33a4aebe948001d7" title="Shortcut to the time Dimension, same as &#39;Dimension(&quot;time&quot;)&#39;, but spares the parsing of a string...">Dimension::time</a>));

  <span class="keywordflow">return</span> <a class="code" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8" title="Maps the dimensions of this Argument to their values.">values</a>.find(dim);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a3289dcd0413f1df96a51df6cef134ad4"></a><!-- doxytag: member="Argument::find" ref="a3289dcd0413f1df96a51df6cef134ad4" args="(const Argument::key_type &amp;dim) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00013.html#a521abc97d737e8c77742dcc9f4b21022">Argument::const_iterator</a> Argument::find </td>
          <td>(</td>
          <td class="paramtype">const Argument::key_type &amp;&#160;</td>
          <td class="paramname"><em>dim</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns an iterator to the <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> value for the passed <a class="el" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a>. </p>
<p>Returns <a class="el" href="a00013.html#aeeb6730c20ae8a8d6c9606f2e03cc1da" title="Returns an iterator to the value behind the last argument value.">end()</a> if there is no <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> for that dimension. </p>

<p>References <a class="el" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8">values</a>.</p>
<div class="fragment"><pre class="fragment">                                                                      {
  assert(!(dim == <a class="code" href="a00085.html#a16cb1f186dd3f48d33a4aebe948001d7" title="Shortcut to the time Dimension, same as &#39;Dimension(&quot;time&quot;)&#39;, but spares the parsing of a string...">Dimension::time</a>));

  <span class="keywordflow">return</span> <a class="code" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8" title="Maps the dimensions of this Argument to their values.">values</a>.find(dim);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a137a911de0281cbb519fe13727aa0813"></a><!-- doxytag: member="Argument::getArgValue" ref="a137a911de0281cbb519fe13727aa0813" args="(const Argument::key_type &amp;dim) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Argument::mapped_type_cref Argument::getArgValue </td>
          <td>(</td>
          <td class="paramtype">const Argument::key_type &amp;&#160;</td>
          <td class="paramname"><em>dim</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the value for the specified dimension. </p>
<p>Note: Don't use this function to get the time value! Use "getTime()" instead.</p>
<p>Returns zero if no value with the specified dimension is set for this argument. </p>

<p>References <a class="el" href="a00013.html#ae4b61830a991f8911978c30a67dd2da6">find()</a>, <a class="el" href="a00013.html#a8523627cdc70492e5e0935b9a3a78cc4">MappedZero</a>, and <a class="el" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8">values</a>.</p>

<p>Referenced by <a class="el" href="a00194.html#aa6f392c0904f66eb264c597980873367">SimpleConstMapping::createKeyEntries()</a>, <a class="el" href="a00138.html#ac9d1a808dbca5da873af58f1da4cbcf4">MappingUtils::findMax()</a>, <a class="el" href="a00138.html#adb9e9ced268b9a5d1d4f6d34738654aa">MappingUtils::findMin()</a>, <a class="el" href="a00198.html#aa263547a6e528cc1acf88fc496510e40">SimplePathlossConstMapping::getValue()</a>, <a class="el" href="a00148.html#a524f27f6b8f01dc973dbe54f0f9c5ed2">MultiDimMapping&lt; Linear &gt;::getValue()</a>, <a class="el" href="a00149.html#a3a3b5ddc5aa1636772b9a89c085acdfc">MultiDimMappingIterator&lt; Linear &gt;::iterateTo()</a>, <a class="el" href="a00149.html#a71f35cd0d6fabecb65019466018c51ca">MultiDimMappingIterator&lt; Linear &gt;::jumpTo()</a>, <a class="el" href="a00149.html#ad5d0da6708731305fdec6fe8086c1b65">MultiDimMappingIterator&lt; Linear &gt;::MultiDimMappingIterator()</a>, <a class="el" href="a00058.html#a526e8d5b948e9b2ce9d729e66b162e13">ConstMapping::print()</a>, and <a class="el" href="a00148.html#a7b50181a1d5e38902c6468bc739f6aa7">MultiDimMapping&lt; Linear &gt;::setValue()</a>.</p>
<div class="fragment"><pre class="fragment">{
  <a class="code" href="a00013.html#a521abc97d737e8c77742dcc9f4b21022" title="Const-iterator type for this set.">const_iterator</a> it = <a class="code" href="a00013.html#ae4b61830a991f8911978c30a67dd2da6" title="Returns an iterator to the Argument value for the passed Dimension.">find</a>(dim);

  <span class="keywordflow">if</span>(it == <a class="code" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8" title="Maps the dimensions of this Argument to their values.">values</a>.end())
    <span class="keywordflow">return</span> <a class="code" href="a00013.html#a8523627cdc70492e5e0935b9a3a78cc4" title="Zero value of a Argument value.">MappedZero</a>;

  <span class="keywordflow">return</span> it-&gt;second;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a8b3fcda23d2eec4e931126d261e4b194"></a><!-- doxytag: member="Argument::getDimensions" ref="a8b3fcda23d2eec4e931126d261e4b194" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00086.html">DimensionSet</a> Argument::getDimensions </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the dimensions this argument is defined over. </p>
<p>Note: this method has linear complexity over the number of dimensions, since the <a class="el" href="a00086.html" title="Represents a set of dimensions which is used to define over which dimensions a mapping is defined (th...">DimensionSet</a> has to be created from the values and their dimensions inside this <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>. </p>

<p>References <a class="el" href="a00086.html#a692159c06427648fbd09f0cd879b3ec7">DimensionSet::insert()</a>, and <a class="el" href="a00085.html#a16cb1f186dd3f48d33a4aebe948001d7">Dimension::time</a>.</p>

<p>Referenced by <a class="el" href="a00138.html#ac9d1a808dbca5da873af58f1da4cbcf4">MappingUtils::findMax()</a>, <a class="el" href="a00138.html#adb9e9ced268b9a5d1d4f6d34738654aa">MappingUtils::findMin()</a>, <a class="el" href="a00013.html#a20805e35e4f766088dccfa2bbd8faf03">operator&lt;()</a>, and <a class="el" href="a00195.html#aef703d1c7304041f2594886e902134ed">SimpleConstMappingIterator::SimpleConstMappingIterator()</a>.</p>
<div class="fragment"><pre class="fragment">                                     {
    <span class="keyword">typedef</span> key_iterator&lt;const_iterator&gt; key_const_iterator;

    <a class="code" href="a00086.html" title="Represents a set of dimensions which is used to define over which dimensions a mapping is defined (th...">DimensionSet</a> res(<a class="code" href="a00085.html#a16cb1f186dd3f48d33a4aebe948001d7" title="Shortcut to the time Dimension, same as &#39;Dimension(&quot;time&quot;)&#39;, but spares the parsing of a string...">Dimension::time</a>);

    res.insert(key_const_iterator(<a class="code" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8" title="Maps the dimensions of this Argument to their values.">values</a>.begin()), key_const_iterator(<a class="code" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8" title="Maps the dimensions of this Argument to their values.">values</a>.end()));

    <span class="keywordflow">return</span> res;
  }
</pre></div>
</div>
</div>
<a class="anchor" id="a9f8683a4ac0a277d92f4ee4c553b75f9"></a><!-- doxytag: member="Argument::insertValue" ref="a9f8683a4ac0a277d92f4ee4c553b75f9" args="(iterator pos, const Argument::value_type &amp;valPair, iterator &amp;itEnd, bool ignoreUnknown=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00013.html#a62ef6fa40b8600df45f05d0e36e6d296">Argument::iterator</a> Argument::insertValue </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00013.html#a62ef6fa40b8600df45f05d0e36e6d296">iterator</a>&#160;</td>
          <td class="paramname"><em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Argument::value_type &amp;&#160;</td>
          <td class="paramname"><em>valPair</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00013.html#a62ef6fa40b8600df45f05d0e36e6d296">iterator</a> &amp;&#160;</td>
          <td class="paramname"><em>itEnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>ignoreUnknown</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Inserts the passed value for the passed <a class="el" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a> into this <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>. </p>
<p>The parameter "pos" defines the position inside the <a class="el" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a>&lt;-&gt;Value-pair array to start searching for the dimension to set.</p>
<p>If the "ignoreUnknown"-parameter is set to true the new value is only set if the <a class="el" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a> was defined in this <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> before (means, no new DImensions are added to the <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>).</p>
<p>The method returns the position inside the array the value was inserted. </p>

<p>References <a class="el" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8">values</a>.</p>

<p>Referenced by <a class="el" href="a00013.html#a72ac36c91caaeb8f34eb091abff19c51">setArgValues()</a>.</p>
<div class="fragment"><pre class="fragment">                                                                                                                                  {
  pos = <a class="code" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8" title="Maps the dimensions of this Argument to their values.">values</a>.lower_bound(valPair.first);
  <span class="keywordflow">if</span>(pos != itEnd &amp;&amp; !(<a class="code" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8" title="Maps the dimensions of this Argument to their values.">values</a>.key_comp()(valPair.first, pos-&gt;first))) {
      <span class="comment">// key already exists</span>
      <span class="comment">// update pos-&gt;second if you care to</span>
    pos-&gt;second = valPair.second;
    <span class="keywordflow">return</span> pos;
  }
  <span class="keywordflow">if</span> (ignoreUnknown)
    <span class="keywordflow">return</span> pos;

  pos   = <a class="code" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8" title="Maps the dimensions of this Argument to their values.">values</a>.insert(pos, valPair);
  itEnd = <a class="code" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8" title="Maps the dimensions of this Argument to their values.">values</a>.end();
  <span class="keywordflow">return</span> pos;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac69b6722244626cdf4e0a006c9822cec"></a><!-- doxytag: member="Argument::isSamePosition" ref="ac69b6722244626cdf4e0a006c9822cec" args="(const Argument &amp;other) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Argument::isSamePosition </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00013.html">Argument</a> &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns true if the passed <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> points to the same position. </p>
<p>The functions returns true if every <a class="el" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a> in the passed <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> exists in this <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> and their values are the same. The difference to the == operator is that the dimensions of the passed <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> can be a subset of the dimensions of this <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>. </p>

<p>References <a class="el" href="a00013.html#af0e836fd4aaecc1461b994e21f66ddc3">begin()</a>, <a class="el" href="a00013.html#aeeb6730c20ae8a8d6c9606f2e03cc1da">end()</a>, <a class="el" href="a00013.html#a69cba55a3a7e1414ba8edde37796d84e">time</a>, and <a class="el" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8">values</a>.</p>
<div class="fragment"><pre class="fragment">{
  <span class="keywordflow">if</span>(<a class="code" href="a00013.html#a69cba55a3a7e1414ba8edde37796d84e" title="Stores the time dimension in Omnet&#39;s time type.">time</a> != o.time){
    <span class="keywordflow">return</span> <span class="keyword">false</span>;
  }

  <span class="keywordflow">if</span>(<a class="code" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8" title="Maps the dimensions of this Argument to their values.">values</a>.size() &lt; o.values.size()){
    <span class="keywordflow">return</span> <span class="keyword">false</span>;
  }

  <span class="keywordflow">if</span>(o.values.empty())
    <span class="keywordflow">return</span> <span class="keyword">true</span>;

  <a class="code" href="a00013.html#a521abc97d737e8c77742dcc9f4b21022" title="Const-iterator type for this set.">const_iterator</a>       itO    = o.begin();
  <a class="code" href="a00013.html#a521abc97d737e8c77742dcc9f4b21022" title="Const-iterator type for this set.">const_iterator</a>       it     = <a class="code" href="a00013.html#af0e836fd4aaecc1461b994e21f66ddc3" title="Returns an iterator to the first argument value in this Argument.">begin</a>();
  <span class="keyword">const</span> <a class="code" href="a00013.html#a521abc97d737e8c77742dcc9f4b21022" title="Const-iterator type for this set.">const_iterator</a> itEnd  = <a class="code" href="a00013.html#aeeb6730c20ae8a8d6c9606f2e03cc1da" title="Returns an iterator to the value behind the last argument value.">end</a>();
  <span class="keyword">const</span> <a class="code" href="a00013.html#a521abc97d737e8c77742dcc9f4b21022" title="Const-iterator type for this set.">const_iterator</a> itEndO = o.end();

  <span class="keywordflow">while</span> (it != itEnd) {
    <span class="keywordflow">if</span> (itO-&gt;first &lt; it-&gt;first) {
      <span class="keywordflow">break</span>;
    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (it-&gt;first &lt; itO-&gt;first)
      ++it;
    <span class="keywordflow">else</span> {
      <span class="keywordflow">if</span>(it-&gt;second != itO-&gt;second){
        <span class="keywordflow">break</span>;
      }
      ++it;
      ++itO;
    }
    <span class="keywordflow">if</span> (itO == itEndO) <span class="keywordflow">return</span> <span class="keyword">true</span>;
  }

  <span class="keywordflow">return</span> <span class="keyword">false</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a20805e35e4f766088dccfa2bbd8faf03"></a><!-- doxytag: member="Argument::operator&lt;" ref="a20805e35e4f766088dccfa2bbd8faf03" args="(const Argument &amp;o) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Argument::operator&lt; </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00013.html">Argument</a> &amp;&#160;</td>
          <td class="paramname"><em>o</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns true if this <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> is smaller then the passed <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>. The dimensions of the Arguments have to be the same. </p>
<p>An <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> is compared smaller than another <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> if the value of the <a class="el" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a> with the highest id is compared smaller. If the value of the highest <a class="el" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a> is compared bigger the <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> isn't compared smaller (method returns false). If the values of the <a class="el" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a> with the highest <a class="el" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a> are equal, the next smaller <a class="el" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a> is compared. </p>

<p>References <a class="el" href="a00013.html#ac983761168238481be2bc9d9d180abe5">compare()</a>, and <a class="el" href="a00013.html#a8b3fcda23d2eec4e931126d261e4b194">getDimensions()</a>.</p>
<div class="fragment"><pre class="fragment">{
  assert(<a class="code" href="a00013.html#a8b3fcda23d2eec4e931126d261e4b194" title="Returns the dimensions this argument is defined over.">getDimensions</a>() == o.<a class="code" href="a00013.html#a8b3fcda23d2eec4e931126d261e4b194" title="Returns the dimensions this argument is defined over.">getDimensions</a>());

  <span class="keywordflow">return</span> <a class="code" href="a00013.html#ac983761168238481be2bc9d9d180abe5" title="Compares this Argument with the passed Argument in the dimensions of the passed DimensionsSet. (Every other Dimension is asserted equal).">compare</a>(o) &lt; 0;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a27bd7000e865670a673039233424d2ab"></a><!-- doxytag: member="Argument::setArgValue" ref="a27bd7000e865670a673039233424d2ab" args="(const Argument::key_type &amp;dim, Argument::mapped_type_cref value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Argument::setArgValue </td>
          <td>(</td>
          <td class="paramtype">const Argument::key_type &amp;&#160;</td>
          <td class="paramname"><em>dim</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Argument::mapped_type_cref&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the value for the specified dimension. </p>
<p>Note: Don't use this function to change the time value! Use "setTime()" instead.</p>
<p>If the argument doesn't already contain a value for the specified dimension the new dimension is added. </p>

<p>References <a class="el" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8">values</a>.</p>

<p>Referenced by <a class="el" href="a00194.html#aa6f392c0904f66eb264c597980873367">SimpleConstMapping::createKeyEntries()</a>, <a class="el" href="a00196.html#a376421d6d86692c47dacaaebfd21ebd7">SimpleMacLayer::createMapping()</a>, <a class="el" href="a00026.html#a3da0a0f34a80528e6efcb5593a073c55">BaseMacLayer::createSingleFrequencyMapping()</a>, <a class="el" href="a00184.html#a9c8c9efca7849ffb32d315a71d2a7184">RandomFreqTimeModel::filterSignal()</a>, <a class="el" href="a00185.html#acac71950a5a7176292f7c404c32f609c">RandomFrequencyOnlyModel::filterSignal()</a>, <a class="el" href="a00071.html#a81e91e9aa6db0ebad8d19ae8b3bc037a">Decider80211::getFrameReceivingPower()</a>, <a class="el" href="a00071.html#a59da14e36530b3a420e960a2d517e5df">Decider80211::getLowerBandFrequency()</a>, <a class="el" href="a00071.html#acdb12f5675ea4208432cc56aab3f2aec">Decider80211::getUpperBandFrequency()</a>, <a class="el" href="a00149.html#ab41125ce8959de6fafb3347a7691ca52">MultiDimMappingIterator&lt; Linear &gt;::jumpToBegin()</a>, <a class="el" href="a00149.html#a916ccca90ebffc95897f6c13bda9dd67">MultiDimMappingIterator&lt; Linear &gt;::MultiDimMappingIterator()</a>, <a class="el" href="a00149.html#a8928195a1fe4bb3af81d3ffe2391827e">MultiDimMappingIterator&lt; Linear &gt;::next()</a>, <a class="el" href="a00058.html#a526e8d5b948e9b2ce9d729e66b162e13">ConstMapping::print()</a>, and <a class="el" href="a00149.html#a1eb04551f2a3ae22f0eae4844f14ac97">MultiDimMappingIterator&lt; Linear &gt;::updateNextPosition()</a>.</p>
<div class="fragment"><pre class="fragment">{
  assert(!(dim == <a class="code" href="a00085.html#a16cb1f186dd3f48d33a4aebe948001d7" title="Shortcut to the time Dimension, same as &#39;Dimension(&quot;time&quot;)&#39;, but spares the parsing of a string...">Dimension::time</a>));

  <a class="code" href="a00013.html#a62ef6fa40b8600df45f05d0e36e6d296" title="Iterator type for this set.">iterator</a> pos = <a class="code" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8" title="Maps the dimensions of this Argument to their values.">values</a>.lower_bound(dim);
  <span class="keywordflow">if</span>(pos != <a class="code" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8" title="Maps the dimensions of this Argument to their values.">values</a>.end() &amp;&amp; !(<a class="code" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8" title="Maps the dimensions of this Argument to their values.">values</a>.key_comp()(dim, pos-&gt;first))) {
      <span class="comment">// key already exists</span>
      <span class="comment">// update pos-&gt;second if you care to</span>
    pos-&gt;second = value;
    <span class="keywordflow">return</span>;
  }
  <a class="code" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8" title="Maps the dimensions of this Argument to their values.">values</a>.insert(pos, Argument::value_type(dim, value));
}
</pre></div>
</div>
</div>
<a class="anchor" id="a72ac36c91caaeb8f34eb091abff19c51"></a><!-- doxytag: member="Argument::setArgValues" ref="a72ac36c91caaeb8f34eb091abff19c51" args="(const Argument &amp;o, bool ignoreUnknown=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Argument::setArgValues </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00013.html">Argument</a> &amp;&#160;</td>
          <td class="paramname"><em>o</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>ignoreUnknown</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Update the values of this <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> with the values of the passed <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>. </p>
<p>Only the dimensions from the passed <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> are updated or added.</p>
<p>If the ignoreUnknown parameter is set to true, only the Dimensions already inside the <a class="el" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> are updated. </p>

<p>References <a class="el" href="a00013.html#af0e836fd4aaecc1461b994e21f66ddc3">begin()</a>, <a class="el" href="a00013.html#aeeb6730c20ae8a8d6c9606f2e03cc1da">end()</a>, <a class="el" href="a00013.html#a9f8683a4ac0a277d92f4ee4c553b75f9">insertValue()</a>, <a class="el" href="a00013.html#a69cba55a3a7e1414ba8edde37796d84e">time</a>, and <a class="el" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8">values</a>.</p>

<p>Referenced by <a class="el" href="a00149.html#a3a3b5ddc5aa1636772b9a89c085acdfc">MultiDimMappingIterator&lt; Linear &gt;::iterateTo()</a>, <a class="el" href="a00149.html#a71f35cd0d6fabecb65019466018c51ca">MultiDimMappingIterator&lt; Linear &gt;::jumpTo()</a>, <a class="el" href="a00149.html#ab41125ce8959de6fafb3347a7691ca52">MultiDimMappingIterator&lt; Linear &gt;::jumpToBegin()</a>, <a class="el" href="a00149.html#a8928195a1fe4bb3af81d3ffe2391827e">MultiDimMappingIterator&lt; Linear &gt;::next()</a>, and <a class="el" href="a00149.html#a1eb04551f2a3ae22f0eae4844f14ac97">MultiDimMappingIterator&lt; Linear &gt;::updateNextPosition()</a>.</p>
<div class="fragment"><pre class="fragment">                                                                {
  <a class="code" href="a00013.html#a69cba55a3a7e1414ba8edde37796d84e" title="Stores the time dimension in Omnet&#39;s time type.">time</a> = o.<a class="code" href="a00013.html#a69cba55a3a7e1414ba8edde37796d84e" title="Stores the time dimension in Omnet&#39;s time type.">time</a>;

  <a class="code" href="a00013.html#a62ef6fa40b8600df45f05d0e36e6d296" title="Iterator type for this set.">iterator</a>             pos      = <a class="code" href="a00013.html#af0e836fd4aaecc1461b994e21f66ddc3" title="Returns an iterator to the first argument value in this Argument.">begin</a>();
  <span class="keyword">const</span> <a class="code" href="a00013.html#a521abc97d737e8c77742dcc9f4b21022" title="Const-iterator type for this set.">const_iterator</a> oEndIter = o.<a class="code" href="a00013.html#aeeb6730c20ae8a8d6c9606f2e03cc1da" title="Returns an iterator to the value behind the last argument value.">end</a>();
  <a class="code" href="a00013.html#a62ef6fa40b8600df45f05d0e36e6d296" title="Iterator type for this set.">iterator</a>             EndIter  = <a class="code" href="a00013.html#a7e41277b3b57f03fbb47336c2b7439f8" title="Maps the dimensions of this Argument to their values.">values</a>.end();

  <span class="keywordflow">for</span>(<a class="code" href="a00013.html#a521abc97d737e8c77742dcc9f4b21022" title="Const-iterator type for this set.">const_iterator</a> it = o.<a class="code" href="a00013.html#af0e836fd4aaecc1461b994e21f66ddc3" title="Returns an iterator to the first argument value in this Argument.">begin</a>(); it != oEndIter; ++it) {
    pos = <a class="code" href="a00013.html#a9f8683a4ac0a277d92f4ee4c553b75f9" title="Inserts the passed value for the passed Dimension into this Argument.">insertValue</a>(pos, *it, EndIter, ignoreUnknown);
    <span class="keywordflow">if</span> (ignoreUnknown &amp;&amp; pos == EndIter)
      <span class="keywordflow">break</span>; <span class="comment">//current dimension was not found and next will be also not in our dimension set</span>
  }
}
</pre></div>
</div>
</div>
<hr/><h2>Friends And Related Function Documentation</h2>
<a class="anchor" id="a7eb8c897281544d904f4a45de93a5cf9"></a><!-- doxytag: member="Argument::operator&lt;&lt;" ref="a7eb8c897281544d904f4a45de93a5cf9" args="(std::ostream &amp;out, const Argument &amp;d)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream&amp; operator&lt;&lt; </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00013.html">Argument</a> &amp;&#160;</td>
          <td class="paramname"><em>d</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Output operator for Arguments. </p>
<p>Produces output of form "(x1, x2, x3, &lt;...&gt;)". </p>
<div class="fragment"><pre class="fragment">                                                                    {
    <span class="keyword">using</span> std::operator&lt;&lt;;

    out &lt;&lt; <span class="stringliteral">&quot;(&quot;</span> &lt;&lt; d.<a class="code" href="a00013.html#a69cba55a3a7e1414ba8edde37796d84e" title="Stores the time dimension in Omnet&#39;s time type.">time</a>;

    <span class="keywordflow">for</span> (<a class="code" href="a00013.html#a521abc97d737e8c77742dcc9f4b21022" title="Const-iterator type for this set.">const_iterator</a> it = d.<a class="code" href="a00013.html#af0e836fd4aaecc1461b994e21f66ddc3" title="Returns an iterator to the first argument value in this Argument.">begin</a>(); it != d.<a class="code" href="a00013.html#aeeb6730c20ae8a8d6c9606f2e03cc1da" title="Returns an iterator to the value behind the last argument value.">end</a>(); ++it) {
      out &lt;&lt; <span class="stringliteral">&quot;, &quot;</span> &lt;&lt; it-&gt;second &lt;&lt; <span class="stringliteral">&quot;@&quot;</span> &lt;&lt; it-&gt;first;
    }
      <span class="keywordflow">return</span> (out &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>);
    }
</pre></div>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>D:/Projects/MiXiM/extsrc/mixim/src/base/phyLayer/<a class="el" href="a00298_source.html">MappingBase.h</a></li>
<li>D:/Projects/MiXiM/extsrc/mixim/src/base/phyLayer/MappingBase.cc</li>
</ul>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="a00013.html">Argument</a>      </li>

    <li class="footer">Generated on Tue Mar 5 2013 21:26:31 for MiXiM by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.5.1 </li>
   </ul>
 </div>


</body>
</html>
